home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / fb386 / tool / watanabe / sprite / sample.bas < prev    next >
BASIC Source File  |  1995-01-22  |  5KB  |  132 lines

  1. 1000 CLEAR,,1024,200000,0
  2. 1010 DEFINT A-Z
  3. 1020 DEF SPRITE 99,0
  4. 1030 DIM SP(255),C(0)
  5. 1040 SPキャラ=16:画面モード=-1
  6. 1045 AB=0 'ABボタンの入れ替えを行いたい場合はこの値を-1にしてください
  7. 1050 SCREEN 0:SCREEN@1
  8. 1060 LOAD@"people.tif",(0,0)
  9. 1070 FOR I=0 TO 15
  10. 1080   GET@A(I*16,0)-(I*16+15,15),SP
  11. 1090   DEF SPRITE 0,I*4,SP,1
  12. 1100   Y=(I AND 12)*16 '+2
  13. 1110   '上部2ライン表示をするときは上の行をコメントを実行する
  14. 1120   DEF SPRITE 1,I*4,((I AND 3)*64+16,Y),I*4,1,1,0
  15. 1130 NEXT
  16. 1140 SCREEN@0
  17. 1150 COLOR ,%5:CLS
  18. 1160 FOR I=0 TO 639 STEP 32:LINE(I,0)-(I,479),PSET,5:NEXT
  19. 1170 FOR I=0 TO 479 STEP 32:LINE(0,I)-(639,I),PSET,5:NEXT
  20. 1180 SPRITE ON
  21. 1190 SCREEN_X=32 'スプライト・グラフィック画面の表示位置
  22. 1200 GOSUB *SCREEN_16 '16色画面モードのときに実行
  23. 1210 'GOSUB *SCREEN_32K '32768色画面モードのとき実行
  24. 1220 IF 画面モード THEN GOSUB *標準 ELSE GOSUB *横長
  25. 1230 FOR I=0 TO SPキャラ-1:SPRITE 0,I*4,1:NEXT
  26. 1240 WHILE INKEY$<>"":WEND
  27. 1250 '
  28. 1260 *MAIN
  29. 1270   GOSUB *パッド入力
  30. 1280   IF INKEY$<>"" THEN
  31. 1290     END
  32. 1300   ELSE IF IN AND 16 THEN
  33. 1310     角度=角度+1
  34. 1320     IF 角度=8 THEN 角度=0
  35. 1330     SPRITE 3,SP*4,角度:WAIT 20
  36. 1340   ELSE IF IN AND 32 THEN
  37. 1350     縮小=縮小+1
  38. 1360     IF 縮小=4 THEN 縮小=0
  39. 1370     SPRITE 4,SP*4,縮小:WAIT 20
  40. 1380   ELSE IF IN AND 64 THEN
  41. 1390     SP=SP+1:IF SP=SPキャラ THEN SP=0
  42. 1400     SPRITE 0,SP*4,0:WAIT 10:SPRITE 0,SP*4,1
  43. 1410     WHILE IN AND 64:GOSUB *パッド入力:WEND
  44. 1420   ELSE IF IN AND 128 THEN
  45. 1430     画面モード=NOT(画面モード)
  46. 1440     IF 画面モード THEN GOSUB *標準 ELSE GOSUB *横長
  47. 1450     WHILE IN AND 128:GOSUB *パッド入力:WEND
  48. 1460   ENDIF
  49. 1470     IF IN AND 8 THEN X=1 ELSE IF IN AND 4 THEN X=-1 ELSE X=0
  50. 1480     IF IN AND 2 THEN Y=1 ELSE IF IN AND 1 THEN Y=-1 ELSE Y=0
  51. 1490     SPRITE 6,SP*4,X,Y:WAIT 1
  52. 1500 GOTO *MAIN
  53. 1510 '
  54. 1520 '
  55. 1530 '********************************************************************
  56. 1540 '*                プログラム開発支援シリーズ第3弾                  *
  57. 1550 '*                                                                  *
  58. 1560 '*                     パッド入力サブルーチン                       *
  59. 1570 '*                                                                  *
  60. 1580 '*                                  94年12月13日(火) by  渡辺良一 *
  61. 1590 '********************************************************************
  62. 1600 *パッド入力
  63. 1610   IN=NOT(INP(&H4D0 OR ADR,1)) AND &H3F
  64. 1620   IF (IN AND 12)=12 THEN IN=IN OR &H40:IN=IN XOR 12 'RUN
  65. 1630   IF (IN AND  3)= 3 THEN IN=IN OR &H80:IN=IN XOR  3 'SELECT
  66. 1640   IF AB AND ((IN AND 16)*2 XOR (IN AND 32)) THEN IN=IN XOR 48
  67. 1650   RETURN
  68. 1660 '
  69. 1670 '
  70. 1680 '*********************************************************************
  71. 1690 '                  プログラム開発支援シリーズ第6弾
  72. 1700 '
  73. 1710 '                スプライト画面モード変更ルーチン
  74. 1720 '
  75. 1730 '                                   1995年1月6日(金) by 渡辺 良一
  76. 1740 '*********************************************************************
  77. 1750 *SCREEN_16
  78. 1760   OUT &H440,&H10,2:OUT &H442,&H0406,2 'vde1
  79. 1770   OUT &H440,&H1B,2:OUT &H442,&H1100,2 'zoom
  80. 1780   OUT &H440,&H0F,2:OUT &H442,&H0046,2 'vds1(標準)
  81. 1790   'OUT &H440,&H0F,2:OUT &H442,&H003D,2 'vds1(上部2ライン表示)
  82. 1800   RETURN
  83. 1810   '
  84. 1820 *SCREEN_32K
  85. 1830   OUT &H440,&H0D,2:OUT &H442,&H0046,2 'vds0
  86. 1840   OUT &H440,&H0E,2:OUT &H442,&H0406,2 'vde0
  87. 1850   OUT &H440,&H0F,2:OUT &H442,&H0046,2 'vds1(標準)
  88. 1860   'OUT &H440,&H0F,2:OUT &H442,&H003D,2 'vds1(上部2ライン表示)
  89. 1870   OUT &H440,&H10,2:OUT &H442,&H0416,2 'vde1
  90. 1880   OUT &H440,&H08,2:OUT &H442,&H0419,2 'vst
  91. 1890   OUT &H440,&H1B,2:OUT &H442,&H1111,2 'zoom
  92. 1900   RETURN
  93. 1910   '
  94. 1920 *標準
  95. 1930   OUT &H440,&H00,2:OUT &H442,&H0060,2 'hsw1
  96. 1940   OUT &H440,&H01,2:OUT &H442,&H02C0,2 'hsw2
  97. 1950   OUT &H440,&H04,2:OUT &H442,&H031F,2 'hst
  98. 1960   OUT &H440,&H1D,2:OUT &H442,&H0002,2 'cr1
  99. 1970   '
  100. 1980   'グラフィック画面の表示領域指定(標準位置)
  101. 1990   'OUT &H440,&H09,2:OUT &H442,&H008A,2 'hds0
  102. 2000   'OUT &H440,&H0A,2:OUT &H442,&H030A,2 'haj0
  103. 2010   'OUT &H440,&H12,2:OUT &H442,&H008A,2 'hde0
  104. 2020   '
  105. 2030   'グラフィック画面の表示領域指定(グラフィックとスプライト一致)
  106. 2040   OUT &H440,&H09,2:OUT &H442,&H008A+SCREEN_X*2,2 'hds0
  107. 2050   OUT &H440,&H0A,2:OUT &H442,&H028A+SCREEN_X*2,2 'haj0
  108. 2060   OUT &H440,&H12,2:OUT &H442,&H008A+SCREEN_X*2,2 'hde0
  109. 2070   '
  110. 2080   'スプライト画面の表示領域指定
  111. 2090   OUT &H440,&H0B,2:OUT &H442,&H008A+SCREEN_X*2,2 'hds1
  112. 2100   OUT &H440,&H0C,2:OUT &H442,&H028A+SCREEN_X*2,2 'haj1
  113. 2110   OUT &H440,&H16,2:OUT &H442,&H008A+SCREEN_X*2,2 'hde1
  114. 2120   RETURN
  115. 2130   '
  116. 2140 *横長
  117. 2150   OUT &H440,&H00,2:OUT &H442,&H0050,2 'hsw1
  118. 2160   OUT &H440,&H01,2:OUT &H442,&H024E,2 'hsw2
  119. 2170   OUT &H440,&H04,2:OUT &H442,&H029D,2 'hst
  120. 2180   OUT &H440,&H1D,2:OUT &H442,&H0003,2 'cr1
  121. 2190   '
  122. 2200   'グラフィック画面の表示領域指定
  123. 2210   OUT &H440,&H09,2:OUT &H442,&H007C,2 'hds0
  124. 2220   OUT &H440,&H0A,2:OUT &H442,&H027C,2 'haj0
  125. 2230   OUT &H440,&H12,2:OUT &H442,&H007C,2 'hde0
  126. 2240   '
  127. 2250   'スプライト画面の表示領域指定
  128. 2260   OUT &H440,&H0B,2:OUT &H442,&H007C,2 'hds1
  129. 2270   OUT &H440,&H0C,2:OUT &H442,&H027C,2 'haj1
  130. 2280   OUT &H440,&H16,2:OUT &H442,&H007C,2 'hde1
  131. 2290   RETURN
  132.